package HadoopWithSpark.class1st

/**
 * @Author TheKernel
 * @Date 2019/9/25 2:46 下午
 * @Version 1.0
 * @Description 1.4 for循环语句
 */
object ForLoopStatement {

  def main(args: Array[String]): Unit = {
    val arr = Array(11, 22, 33, 44, 55, 66)
    for (i <- arr) print(i + " ")

    // scala 中通过下标取值用 ()
    println()
    println("to: ")
    for (i <- 0 to 5) {  // 生成 Range(0, 1, 2, 3, 4, 5)
      print(arr(i) + " ")
    }
    println()
    println("until: ")
    // until 为 左闭右开 to 为 左闭右闭
    for (i <- 0 until 5) print(arr(i) + " ")

    // for 可带双重循环(分里外)
    println()
    println("for 双重循环: ")
    for (i <- 0 to 4; j <- 0 to 4) print(i * 10 + j)
    println()
    println("for 携带卫条件: ")
    // for 携带卫条件(携带条件循环)
    for (i <- 0 to 4; j <- 0 to 4; if i != j) print(i * 10 + j)

    println()
    println("yield: ")
    // yield 每次迭代生成的变量被存于一个集合中, 最后返回所有值的集合(返回类型与循环类型一致)
    val j = for (i <- 0 to 15; if i % 3 == 0) yield i
    println(j)
  }

}
